Product Code Database
Example Keywords: take -picture $77
   » » Wiki: Dispatch Table
Tag Wiki 'Dispatch Table'.
Tag

In , a dispatch table is a table of pointers or to functions or methods. Use of such a table is a common technique when implementing in object-oriented programming.


In different programming languages

Perl
The following shows one way to implement a dispatch table in , using a hash to store references to code (also known as ).

  1. Define the table using one anonymous code-ref and one named code-ref
my %dispatch = (
   "-h" => sub {  return "hello\n"; },
   "-g" => \&say_goodbye
     
);

sub say_goodbye {

   return "goodbye\n";
     
}

  1. Fetch the code ref from the table, and invoke it
my $sub = $dispatch{$ARGV0}; print $sub ? $sub->() : "unknown argument\n";

Running this Perl program as perl greet -h will produce "hello", and running it as perl greet -g will produce "goodbye".


JavaScript
Following is a demo of implementing a dispatch table in JavaScript: const thingsWeCanDo = {
   doThisThing() { /* behavior */ },
   doThatThing() { /* behavior */ },
   doThisOtherThing() { /* behavior */ },
   default() { /* behavior */ }
     
};

function doSomething(doWhat) {

   const thingToDo = Object.hasOwn(thingsWeCanDo, doWhat)
       ? doWhat
       : "default";
   return thingsWeCanDo[thingToDo]();
     
}


Virtual method tables
In object-oriented programming languages that support , the will automatically create a dispatch table for each object of a class containing virtual methods. This table is called a virtual method table or vtable, and every call to a virtual method is dispatched through the vtable.


See also

  • Diomidis Spinellis (2003). : The Open Source Perspective. Boston, MA: Addison-Wesley.

Page 1 of 1
1
Page 1 of 1
1

Account

Social:
Pages:  ..   .. 
Items:  .. 

Navigation

General: Atom Feed Atom Feed  .. 
Help:  ..   .. 
Category:  ..   .. 
Media:  ..   .. 
Posts:  ..   ..   .. 

Statistics

Page:  .. 
Summary:  .. 
1 Tags
10/10 Page Rank
5 Page Refs